package com.manyiaby.view.viewutils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.TextUtils;
import android.view.View;

import com.manyiaby.R;
import com.manyiaby.welcome.ProxyApplication;

import java.util.HashMap;

import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.onekeyshare.OnekeyShareTheme;

/**
 * Created by yx on 2017/8/7.
 */

public class ShareUtil {

    private static String shareName = "";
    private static String shareUrl = "";//分享详情url
    private static String shareImgUrl = "";//作品图、头像
    private static String shareDesc = "";

    public static void setShareName(String shareName) {
        ShareUtil.shareName = shareName;
    }

    public static void setShareUrl(String shareUrl) {
        ShareUtil.shareUrl = shareUrl;
    }

    public static void setShareImgUrl(String shareImgUrl) {
        ShareUtil.shareImgUrl = shareImgUrl;
    }

    public static void setShareDesc(String shareDesc) {
        ShareUtil.shareDesc = shareDesc;
    }

    /**
     * 演示调用ShareSDK执行分享
     *
     * @param context
     * @param platformToShare 指定直接分享平台名称（一旦设置了平台名称，则九宫格将不会显示）
     * @param showContentEdit 是否显示编辑页
     */
    public static void showShare(final Context context, String platformToShare, boolean showContentEdit) {
        OnekeyShare oks = new OnekeyShare();
        oks.setSilent(!showContentEdit);
        if (platformToShare != null) {
            oks.setPlatform(platformToShare);
        }
        //ShareSDK快捷分享提供两个界面第一个是九宫格 CLASSIC  第二个是SKYBLUE
        oks.setTheme(OnekeyShareTheme.CLASSIC);
        // 在自动授权时可以禁用SSO方式
        oks.disableSSOWhenAuthorize();
        //分享短信的号码和邮件的地址
        //oks.setAddress("12345678901");
        // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
        shareName=UrlUtil.getStringDecode(shareName);//防止后台数据encode
        oks.setTitle(shareName);
        // titleUrl是标题的网络链接，QQ和QQ空间等使用人人网使用
        oks.setTitleUrl(shareUrl);//分享链接
        // text是分享文本，所有平台都需要这个字段
        if (!TextUtils.isEmpty(shareDesc)) {
            shareDesc=UrlUtil.getStringDecode(shareDesc);//防止后台数据encode
            oks.setText(shareDesc);
        } else {
            oks.setText("满载而归，艺真天下，让艺术更鲜活。");
        }
        //oks.setImagePath("/sdcard/test-pic.jpg");  //分享sdcard目录下的图片
        oks.setImageUrl(shareImgUrl);//分享图片，新浪目前没有通过审核没有申请高级权限，在新浪上会分享失败，应用通过审核后去申请高级权限就可以设置图片了[设置imageurl需要在开放平台申请高级权限]
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl(shareUrl); //微信不绕过审核分享链接
        oks.setFilePath("testVideo");  //filePath用于视频分享
        oks.setComment(shareName); //我对这条分享的评论，仅在人人网和QQ空间使用，否则可以不提供

        oks.setSite(ProxyApplication.getInstance().getResources().getString(R.string.app_name));  //QZone分享完之后返回应用时提示框上显示的名称
        oks.setSiteUrl(shareUrl);//QZone分享参数  分享此内容的网站地址，仅在QQ空间使用
        //oks.setVenueName("ShareSDK");//foursquare分享时的地方名
        //oks.setVenueDescription("This is a beautiful place!");//foursquare分享时的地方描述
        //分享地纬度，经度,新浪微博、腾讯微博和foursquare支持此字段
        oks.setLatitude(23.169f);
        oks.setLongitude(112.908f);
        // 将快捷分享的操作结果将通过OneKeyShareCallback回调
        // oks.setCallback(new OneKeyShareCallback());
        // 去自定义不同平台的字段内容
        // oks.setShareContentCustomizeCallback(new
        // ShareContentCustomizeDemo());
        // 在九宫格设置自定义的图标
        Bitmap logo = BitmapFactory.decodeResource(context.getResources(), R.drawable.copy_url);
        String label = "复制链接";
        View.OnClickListener listener = new View.OnClickListener() {
            public void onClick(View v) {
                CopyContentUtils.copyPlainText(shareUrl);
            }
        };
        oks.setCustomerLogo(logo, label, listener);
        oks.setCallback(new PlatformActionListener() {
            @Override
            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {

            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {

            }

            @Override
            public void onCancel(Platform platform, int i) {

            }
        });

        // 为EditPage设置一个背景的View
        //oks.setEditPageBackground(getPage());
        // 隐藏九宫格中的新浪微博
        // oks.addHiddenPlatform(SinaWeibo.NAME);

        // String[] AVATARS = {
        // 		"http://99touxiang.com/public/upload/nvsheng/125/27-011820_433.jpg",
        // 		"http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
        // 		"http://diy.qqjay.com/u/files/2012/0523/f466c38e1c6c99ee2d6cd7746207a97a.jpg",
        // 		"http://diy.qqjay.com/u2/2013/0422/fadc08459b1ef5fc1ea6b5b8d22e44b4.jpg",
        // 		"http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339510584349.jpg",
        // 		"http://diy.qqjay.com/u2/2013/0401/4355c29b30d295b26da6f242a65bcaad.jpg" };
        // oks.setImageArray(AVATARS);              //腾讯微博和twitter用此方法分享多张图片，其他平台不可以

        // 启动分享
        oks.show(context);
    }


    /**
     * 圈子调用ShareSDK执行分享
     * 有分享成功，失败回调（但必须在分享成功后点击返回满艺网APP时才会执行分析成功onComplete()函数）
     */
    public static void callbackShowShare(final Context context, String platformToShare, boolean showContentEdit, PlatformActionListener callback) {
        OnekeyShare oks = new OnekeyShare();
        oks.setSilent(!showContentEdit);
        if (platformToShare != null) {
            oks.setPlatform(platformToShare);
        }
        //ShareSDK快捷分享提供两个界面第一个是九宫格 CLASSIC  第二个是SKYBLUE
        oks.setTheme(OnekeyShareTheme.CLASSIC);
        // 在自动授权时可以禁用SSO方式
        oks.disableSSOWhenAuthorize();
        //分享短信的号码和邮件的地址
        //oks.setAddress("12345678901");
        // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
        oks.setTitle(shareName);
        // titleUrl是标题的网络链接，QQ和QQ空间等使用人人网使用
        oks.setTitleUrl(shareUrl);//分享链接
        // text是分享文本，所有平台都需要这个字段
        if (!TextUtils.isEmpty(shareDesc)) {
            oks.setText(shareDesc);
        } else {
            oks.setText("满载而归，艺真天下，让艺术更鲜活。");
        }
        //oks.setImagePath("/sdcard/test-pic.jpg");  //分享sdcard目录下的图片
        oks.setImageUrl(shareImgUrl);//分享图片，新浪目前没有通过审核没有申请高级权限，在新浪上会分享失败，应用通过审核后去申请高级权限就可以设置图片了[设置imageurl需要在开放平台申请高级权限]
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl(shareUrl); //微信不绕过审核分享链接
        oks.setFilePath("testVideo");  //filePath用于视频分享
        oks.setComment(shareName); //我对这条分享的评论，仅在人人网和QQ空间使用，否则可以不提供

        oks.setSite(ProxyApplication.getInstance().getResources().getString(R.string.app_name));  //QZone分享完之后返回应用时提示框上显示的名称
        oks.setSiteUrl(shareUrl);//QZone分享参数  分享此内容的网站地址，仅在QQ空间使用
        //oks.setVenueName("ShareSDK");//foursquare分享时的地方名
        //oks.setVenueDescription("This is a beautiful place!");//foursquare分享时的地方描述
        //分享地纬度，经度,新浪微博、腾讯微博和foursquare支持此字段
        oks.setLatitude(23.169f);
        oks.setLongitude(112.908f);
        // 将快捷分享的操作结果将通过OneKeyShareCallback回调
        // oks.setCallback(new OneKeyShareCallback());
        // 去自定义不同平台的字段内容
        // oks.setShareContentCustomizeCallback(new
        // ShareContentCustomizeDemo());
        // 在九宫格设置自定义的图标
        Bitmap logo = BitmapFactory.decodeResource(context.getResources(), R.drawable.copy_url);
        String label = "复制链接";
        View.OnClickListener listener = new View.OnClickListener() {
            public void onClick(View v) {
                CopyContentUtils.copyPlainText(shareUrl);
            }
        };
        oks.setCustomerLogo(logo, label, listener);

        if (callback != null) {
            oks.setCallback(callback);
        }
        // 启动分享
        oks.show(context);
    }
}
